% TP 4, EJ 3

:- consult('../lib.pl').

% Dato

tarea( basico, buscar(libro, jartum) ).
tarea( basico, buscar(arbol, patras) ).
tarea( basico, buscar(roca, telaviv) ).
tarea( intermedio, buscar(arbol, sofia) ).
tarea( intermedio, buscar(arbol, bucarest) ).
tarea( avanzado, buscar(perro, bari) ).
tarea( avanzado, buscar(flor, belgrado) ).

nivel( pepe, basico ).
nivel( lucy, intermedio ).
nivel( juancho, avanzado ).

idioma( alejandria, arabe ).
idioma( jartum, arabe ).
idioma( patras, griego ).
idioma( telaviv, hebreo ).
idioma( sofia, bulgaro ).
idioma( bari, italiano ).
idioma( bucarest, rumano ).
idioma( belgrado, serbio ).

habla( pepe, bulgaro ).
habla( pepe, griego ).
habla( pepe, italiano ).
habla( juancho, arabe ).
habla( juancho, griego ).
habla( juancho, hebreo ).
habla( lucy, griego ).

capital( pepe, 1200 ).
capital( lucy, 3000 ).
capital( juancho, 500 ).

% Mis clausulas

persona( X ) :- capital( X, _ ).
cosaViva( arbol ).
cosaViva( perro ).
cosaViva( flor ).

destinoPosible( Pers, City ) :-
	nivel( Pers, Lvl ),
	tarea( Lvl, buscar(_,City) ).

% Relaciona niveles o personas ???
idiomaUtil( Pers, Lang ) :-
	nivel( Pers, Lvl ),
	tarea( Lvl, buscar(_,City)),
	idioma( City, Lang ).
	
excelenteCompaniero( Viaj, Comp ) :-
	persona( Viaj ),
	persona( Comp ),
	findall( L, (
		destinoPosible( Viaj, Cities ),
		idioma(Cities,L )
	), Langs ),
	findall( L2,
		habla( Comp, L2 )
	, Langs2 ),
	alike( Langs, Langs2 ).
	
	
interesante( Lvl ) :-
	tarea( Lvl, buscar(_,Lugar) ),
	idioma( Lugar, italiano ), !.

interesante( Lvl ) :-
	findall( Cosa, 
		tarea(Lvl, buscar(Cosa,_))
	, Cosas ),
	sublist( cosaViva(Cosa), Cosas, Cosas2 ),
	,
	.